/*
 * @lc app=leetcode.cn id=1071 lang=typescript
 *
 * [1071] 字符串的最大公因子
 */

// @lc code=start
// 模拟最大公因数算法 辗转相除法
function gcdOfStrings(str1: string, str2: string): string {
    const gcd = (a: number, b: number): number => {
        return b === 0 ? a : gcd(b, a % b);
    };

    // FIXME 特殊操作：如果两个为同成分字符串，那么前后相加没有区别。。。
    if (str1 + str2 !== str2 + str1) return "";

    // 如果是的话，必然是公因数点
    return str1.substring(0, gcd(str1.length, str2.length));
}
// @lc code=end
